package schema

import (
	"time"
)

// GroupHome 群首页对象
type GroupHome struct {
	ID        string    `json:"id"`                            // 唯一标识
	GroupId   string    `json:"group_id" binding:"required"`   // 群ID
	ContentId string    `json:"content_id" binding:"required"` // 内容ID
	Creator   string    `json:"creator"`                       // 创建者
	CreatedAt time.Time `json:"created_at"`                    // 创建时间
	UpdatedAt time.Time `json:"updated_at"`                    // 更新时间
}

// GroupHomeUpdate 群首页对象
type GroupHomeUpdate struct {
	ID        string    `json:"id"`                             // 唯一标识
	GroupId   string    `json:"group_id" binding:"omitempty"`   // 群ID
	ContentId string    `json:"content_id" binding:"omitempty"` // 内容ID
	Creator   string    `json:"creator"`                        // 创建者
	CreatedAt time.Time `json:"created_at"`                     // 创建时间
	UpdatedAt time.Time `json:"updated_at"`                     // 更新时间
}

func (a *GroupHomeUpdate) ToGroupHome() *GroupHome {
	return &GroupHome{
		ID:        a.ID,
		GroupId:   a.GroupId,
		ContentId: a.ContentId,
		Creator:   a.Creator,
		CreatedAt: a.CreatedAt,
		UpdatedAt: a.UpdatedAt,
	}
}

// GroupHomeQueryParam 查询条件
type GroupHomeQueryParam struct {
	PaginationParam
	GroupId   string `form:"group_id"`   // 群ID
	ContentId string `form:"content_id"` // 内容ID
	Creator   string `form:"creator"`    // 创建者

}

// GroupHomeQueryOptions 查询可选参数项
type GroupHomeQueryOptions struct {
	OrderFields []*OrderField // 排序字段
}

// GroupHomeQueryResult 查询结果
type GroupHomeQueryResult struct {
	Data       GroupHomes
	PageResult *PaginationResult
}

// GroupHomes 群首页列表
type GroupHomes []*GroupHome
